Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

164
Visualizações
Obtener "Referencia de objeto nulo" al intentar la encapsulación

Probablemente sea estúpidamente simple, pero parece que no puedo entender qué es lo que está mal. Estoy tratando de crear una demostración para mostrar Encapsulation.

Encapsulación.clase:

 public class Encapsulation { // 'numberOfEggs' is an instance variable // it was made 'private', because we do NOT want it to be directly accessed by other classes // being 'private' also means that only code within the class can read or write its value private int numberOfEggs = 10; // getter public int getNumberOfEggs() { return numberOfEggs; } // setter public void setNumberOfEggs(int numberOfEggs) { if (numberOfEggs > 0) { // we used the 'this' keyword to differentiate between the method parameter 'currentNumberOfEggs' and // the instance variable 'currentNumberOfEggs' this.numberOfEggs = numberOfEggs; } } }

MainActivity.clase:

 public class MainActivity extends AppCompatActivity { TextView defaultNumberOfEggs; Encapsulation encapsulation; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); defaultNumberOfEggs = (TextView) findViewById(R.id.default_number_of_eggs); defaultNumberOfEggs.setText(encapsulation.getNumberOfEggs()); } }

actividad_principal.xml:

 <RelativeLayout android:id="@+id/activity_main" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.vladp.studyandroid1.MainActivity"> <TextView android:id="@+id/default_number_of_eggs" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout>

Y recibo un error de "referencia de objeto nulo" cuando inicio la aplicación y configuro el texto a través defaultNumberOfEggs.setText(encapsulation.getNumberOfEggs()); , que debe mostrar "10" (sin las comillas).

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Olvidó inicializar su objeto de encapsulation . Por defecto, apunta a nulo.

Así que deberías definirlo a nivel de clase:

Encapsulation encapsulation = new Encapsulation();

O en constructor:

 MainActivity() { encapsulation = new Encapsulation(); }

O dentro del método onCreate después de llamar a super:

 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); encapsulation = new Encapsulation(); setContentView(R.layout.activity_main); .... }
over 4 years ago · Santiago Trujillo Relatório

0

En el método onCreate , agregue una primera línea como

 encapsulation = new Encapsulation();
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda